<?php

include_once 'User.class.php';
include_once 'Produit.class.php';
include_once 'Avis.class.php';
/*
 * 
 * La classe Panier permet de gérer le panier de l'utilisateur, elle possède une collection de ProduitsPanier.
 * 
 * 
 */
class Panier {
   
    protected $_lesProduitPanier, $_prixtotal ; 
    
    public function __construct($lesproduitPanier) {
        $this->_lesProduitPanier = $lesproduitPanier;
        $this->calculPrixTotal();
        
    }
    
    public function getLesProduitPanier() {return $this->_lesProduitPanier;}
    public function getPrixTotal() {return $this->_prixtotal;}
    
    public function setLesProduitPanier($lesproduitPanier) {
        $this->_lesProduitPanier = $lesproduitPanier;
         $this->calculPrixTotal();
    }
    public function setPrixtotal($prixtotal) {$this->_prixtotal = $prixtotal;}
    
    public function calculPrixTotal(){
        $prixtotal = 0;
        if(!empty($this->_lesProduitPanier)){
            foreach ($this->_lesProduitPanier as $produitPanier) {
                $prixtotal += $produitPanier->getProduitPanier()->getPrix() * $produitPanier->getQuantiteProduit();    
            }
        }
        
         $this->_prixtotal = $prixtotal;
    }
    
    public function getNbProduitsPanier(){
        return sizeof($this->_lesProduitPanier);    
    }
    
    public function getTotalQteProduits(){
        $total = 0;
         foreach ($this->_lesProduitPanier as $produitPanier) {
             $total += $produitPanier->getQuantiteProduit();
         }
         return $total;
         
    }
    
    
    public function estDejaDansLePanier($refProduit){
        $verif = false;
        foreach ($this->_lesProduitPanier as $pdtPanier){
            if($pdtPanier->getProduitPanier()->getReference() == $refProduit){
                $verif = true;
            }
        }
        return $verif;
    }
    
    
    public function ajouterQteSurProduitPanier($qte, $idp){
       
        foreach ($this->_lesProduitPanier as $pdtPanier){
            if($pdtPanier->getProduitPanier()->getReference() == $idp){
                $qteInitial =  $pdtPanier->getQuantiteProduit();
                $pdtPanier->setQuantiteProduit($qteInitial + $qte);
            }
        }
         $this->calculPrixTotal();
    }
     public function ajouterDansLesProduitsPanier($produit){
        $lesPdts = $this->getLesProduitPanier();
        $lesPdts[] = $produit;
        $this->setLesProduitPanier($lesPdts);
    }
    
    public function viderLesProduitsPanier(){
        $vide = array();
        $this->setLesProduitPanier($vide);
        $this->calculPrixTotal();
    }
    
    
   
   
}
?>
